# 使用官方Python运行时作为父镜像
FROM python:3.9-slim

# 设置工作目录
WORKDIR /app

# 安装必要的系统依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
    gcc \
    python3-dev \
    && rm -rf /var/lib/apt/lists/*

# 复制依赖文件
COPY config/requirements.txt /app/

# 设置pip使用国内镜像源并增加超时时间
RUN http_proxy= https_proxy= HTTP_PROXY= HTTPS_PROXY= \
    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple && \
    http_proxy= https_proxy= HTTP_PROXY= HTTPS_PROXY= \
    pip config set global.trusted-host pypi.tuna.tsinghua.edu.cn && \
    http_proxy= https_proxy= HTTP_PROXY= HTTPS_PROXY= \
    pip install --no-cache-dir --timeout 120 -r requirements.txt

# 复制应用代码和资源
COPY src/ /app/src/
COPY static/ /app/static/
COPY templates/ /app/templates/
COPY tools/ /app/tools/

# 移除不再需要的编译工具以减小镜像体积
RUN apt-get purge -y gcc python3-dev && \
    apt-get autoremove -y

# 确保应用使用UTF-8编码
ENV LANG C.UTF-8
ENV LC_ALL C.UTF-8

# 创建临时目录并设置权限
RUN mkdir -p /tmp/jar_updates && chmod 777 /tmp/jar_updates

# 暴露端口18081
EXPOSE 18081

# 设置环境变量
ENV FLASK_APP=web_app.py
ENV FLASK_ENV=production

# 启动Flask应用
CMD ["python", "src/web_app.py"]